home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 8 / Night Owl CD-ROM (NOPV8) (Night Owl Publisher) (1993).ISO / 017a / hexed21.arj / HEXEDIT.TXT < prev    next >
Text File  |  1991-04-20  |  59KB  |  1,453 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.      HexEdit 2.1
  9.      ~~~~~~~ ~~~
  10.  
  11.      By Mike Graham.
  12.      Copyright 1986,1991.
  13.  
  14.      April 20th, 1991. 7:26.
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.                                 Contents
  80.  
  81.  
  82.               1  Introduction  . . . . . . . . . . . . . . . . . . . . 2
  83.               2  Features  . . . . . . . . . . . . . . . . . . . . . . 2
  84.               3  What is Freeware? . . . . . . . . . . . . . . . . . . 3
  85.               4  What does registration get you? . . . . . . . . . . . 3
  86.               5  Distributing HexEdit  . . . . . . . . . . . . . . . . 4
  87.               6  Commercial use of HexEdit . . . . . . . . . . . . . . 4
  88.               7  Unlimited?  . . . . . . . . . . . . . . . . . . . . . 4
  89.               8  Installing HexEdit  . . . . . . . . . . . . . . . . . 5
  90.                  8.1  General Installation . . . . . . . . . . . . . . 5
  91.                  8.2  Installing for DESQview  . . . . . . . . . . . . 5
  92.                  8.3  Installing for Windows 3.0 . . . . . . . . . . . 5
  93.               9  The Basics  . . . . . . . . . . . . . . . . . . . . . 6
  94.                  9.1  Starting up HexEdit  . . . . . . . . . . . . . . 6
  95.                  9.2  Once You're Started  . . . . . . . . . . . . . . 6
  96.               10  The Keys . . . . . . . . . . . . . . . . . . . . . . 7
  97.                  10.1  F1: Help  . . . . . . . . . . . . . . . . . . . 7
  98.                  10.2  F2: Jump to Byte  . . . . . . . . . . . . . . . 7
  99.                  10.3  Shift-F2: Jump to Sector  . . . . . . . . . . . 8
  100.                  10.4  F3: Search  . . . . . . . . . . . . . . . . . . 8
  101.                  10.5  F4: Search and Replace  . . . . . . . . . . . . 8
  102.                  10.6  F8: Mask non-text bytes . . . . . . . . . . . . 8
  103.                  10.7  F9: Mode  . . . . . . . . . . . . . . . . . . . 8
  104.                  10.8  Alt-A: ASCII Table  . . . . . . . . . . . . . . 9
  105.                  10.9  Alt-B: Base Conversion  . . . . . . . . . . . . 9
  106.                  10.10  Alt-C: Configuration . . . . . . . . . . . . . 9
  107.                  10.11  Alt-N: Next Found  . . . . . . . . . . . . .  10
  108.                  10.12  Alt-P: Previous Found  . . . . . . . . . . .  10
  109.                  10.13  Alt-S: Shell to DOS  . . . . . . . . . . . .  10
  110.                  10.14  Alt-T: Text Search . . . . . . . . . . . . .  10
  111.                  10.15  Alt-U: Undo  . . . . . . . . . . . . . . . .  10
  112.                  10.16  Alt-X: Panic Abort . . . . . . . . . . . . .  11
  113.                  10.17  Esc:Exit . . . . . . . . . . . . . . . . . .  11
  114.                  10.18  Backspace  . . . . . . . . . . . . . . . . .  11
  115.                  10.19  Cursor Keys  . . . . . . . . . . . . . . . .  11
  116.               11  System Requirements  . . . . . . . . . . . . . . .  12
  117.               12  Odd Notes  . . . . . . . . . . . . . . . . . . . .  12
  118.               13  Future Enhancements  . . . . . . . . . . . . . . .  13
  119.               14  Revision History . . . . . . . . . . . . . . . . .  14
  120.               15  Legal Crud . . . . . . . . . . . . . . . . . . . .  18
  121.               16  Credit where credit is due . . . . . . . . . . . .  20
  122.               17  Contacting the Author  . . . . . . . . . . . . . .  21
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.                                          i
  131.  
  132.  
  133.  
  134.  
  135.      HexEdit 2.1                                                By Mike Graham
  136.  
  137.  
  138.  
  139. 1  Introduction
  140.  
  141.  
  142.        HexEdit is a programmer's hexadecimal patch editor.   "What,"  you ask,
  143.      "is  a  programmer's  hexadecimal  patch  editor?"  Well, it's a  special
  144.      editor, similar to a text editor except that it  deals  with  unformatted
  145.      binary files, rather than nice, clean text.  For more info on the uses of
  146.      patch editors, see the HEXEARL.TXT file.
  147.  
  148.        HexEdit  has  evolved  greatly  since  version  1.0  back  in '86.  The
  149.      revision history is near the end of this document.
  150.  
  151.  
  152. 2  Features
  153.  
  154.  
  155.          -  Handles files of unlimited size.
  156.  
  157.          -  Records all changes to a file, with an UNDO  feature  wherein  you
  158.             can selectively UNDO any number of changes.
  159.  
  160.          -  UNDO log files can be saved  to  disk before you leave HexEdit, so
  161.             the  next  time  you edit the file, you will have the same changes
  162.             available for UNDO.
  163.  
  164.          -  Searches  files  at  a rate of around 10 seconds per megabyte on a
  165.             high-powered machine.
  166.  
  167.          -  Fast and flexible  search  /  search  and replace.  You can search
  168.             with or without case-sensitivity.    Searches  can be aborted mid-
  169.             stream, even when doing a replace, with no problems.
  170.  
  171.          -  High-speed,  crisp  response;  HexEdit  can  keep  up  with  every
  172.             keyboard accelerator I've tried it with.
  173.  
  174.          -  Random  access  jump  to  any  byte(F2) or sector(SF2) of a  file.
  175.             Location can be specified in decimal or hexadecimal format, or you
  176.             can simply specify top or bottom of file.
  177.  
  178.          -  Searches for character strings or hexadecimal series'.
  179.  
  180.          -  Will store the location of up to 15,000 search matches.
  181.  
  182.          -  Move through file by jumping to locations where  items  were found
  183.             in the last search operation.
  184.  
  185.          -  On-line  base  conversion  including  decimal,   hexadecimal,  and
  186.             binary.
  187.  
  188.          -  Pop-up  ASCII  table  (Alt-A)  for   quick   reference   of  weird
  189.             characters.
  190.  
  191.          -  Search for random text strings (Alt-T) in binary files.
  192.  
  193.  
  194.  
  195.  
  196.                                      Page Two.
  197.  
  198.  
  199.  
  200.  
  201.      HexEdit 2.1                                                By Mike Graham
  202.  
  203.  
  204.  
  205.          -  Swapping DOS shell
  206.  
  207.          -  Full colour customization, with all changes stored directly in the
  208.             executable file, meaning no  configuration  files  to  fool around
  209.             with.
  210.  
  211.          -  Panic  abort of edit.  If all else fails... PANIC!  The file being
  212.             edited will revert to its  original  (pre-edited)  state,  and you
  213.             will instantly drop back to DOS.
  214.  
  215.  
  216. 3  What is Freeware?
  217.  
  218.  
  219.        We're  all  familiar  with the Shareware concept: you're allowed to use
  220.      the product for so many days, then if you intend to continue using it you
  221.      have to send a cheque for so many dollars ere you burn in hell forever.
  222.  
  223.      Freeware is different.
  224.  
  225.        We're  all  TOO  TOO  familiar  with  Crippleware  (an evil,  perverted
  226.      mutation of  Shareware)  in  which  you get a product that has all of the
  227.      nice  features  disabled.  Or it dies and will never run  again  after  a
  228.      certain number of days.   To get one that works, you have to cough up the
  229.      money.  How can you tell if it will do  what  you  need  it to DO, if you
  230.      can't USE IT???
  231.  
  232.      Freeware is better.
  233.  
  234.        With the Freeware concept, I'm not TELLING you to send  me  money.  I'm
  235.      giving you a completely working product  which  you can use forever and a
  236.      day without paying  for,  if  you  want.    However,  if you DO like this
  237.      product, and you'd  like to see new versions of it in the future, then it
  238.      would likely be in your best interest to register the product and support
  239.      my programming efforts.  There is no preset registration fee  (though $20
  240.      per copy used is recommended).  Send whatever your conscience  tells you.
  241.      All I ask  is  that you at least cover the cost of mailing out the latest
  242.      version to you (minimum $10 to cover  postage, disk, disk mailer, etc.).
  243.  
  244.        Some  of  the  companion  products  that  come  with HexEdit  (such  as
  245.      HexConvert and KEYLOCK) have actually been released to the public domain.
  246.      This means that I have basically abandoned all ownership of  the programs
  247.      (though I still reserve the names as copyright) so you  can  give them to
  248.      anyone  with no registration obligation at all.   Feel  free  to  install
  249.      KEYLOCK on the machine at work, or whatever.
  250.  
  251.  
  252. 4  What does registration get you?
  253.  
  254.  
  255.        If you register your product, you get the latest version mailed  to you
  256.      on whatever size of floppy disk you specify (also specify the version you
  257.      have,  so if you already have the latest then I'll wait and send you  the
  258.      next one when it's out).   Once  registered,  your name goes on file, and
  259.  
  260.  
  261.  
  262.                                     Page Three.
  263.  
  264.  
  265.  
  266.  
  267.      HexEdit 2.1                                                By Mike Graham
  268.  
  269.  
  270.  
  271.      you will be alerted of the  next  release  by mail (or whatever method is
  272.      most convenient).  At any  time you can send me $10 and I'll send you the
  273.      most recent  version.  See HEXORDER.FRM for further information regarding
  274.      registration.
  275.  
  276.        Oh  yeah,  if  you send me a good idea regarding alterations to improve
  277.      HexEdit,  or  if  you send in a good (read 'current and real') bug-alert,
  278.      you will be automatically  registered  for  the  next version (which will
  279.      include your suggestion or bug-fix).
  280.  
  281.        I'm  expecting  to  release new versions of HexEdit roughly every three
  282.      months or so.
  283.  
  284.  
  285. 5  Distributing HexEdit
  286.  
  287.  
  288.        Feel free to upload any UNMODIFIED copies of HexEdit anywhere you like.
  289.      You can ADD HexEdit-related files to the HEXEDnn.ZIP, but don't CHANGE or
  290.      DELETE  files.  I.e, if you came up with a really amazing help screen  or
  291.      icon for HexEdit, you can include it with the zip file to give to someone
  292.      or  distribute, but make sure that the original  file  remains  with  its
  293.      original name.   You can add a readme file to promote your addition.  BBS
  294.      Advertisements can be added, but I'd  appreciate it if it  doesn't appear
  295.      each time you run  HexEdit  (i.e.  those  irritating RUNME.BAT files that
  296.      some people come up with... I DESPISE title screens!)
  297.  
  298.  
  299. 6  Commercial use of HexEdit
  300.  
  301.  
  302.        If you represent a company that would like to use HexEdit,  but require
  303.      a special version, detailed  technical  specs,  source code, better docu-
  304.      mentation, site licensing, or whatever, then drop me a line, and I'll see
  305.      what I can do.   Changes can usually be made in a weekend, but if they're
  306.      really in-depth and  nasty, then it might take a week.  Drop me a letter!
  307.      What do you have to lose?  Even if you  are a mere human being, and not a
  308.      company at all...
  309.  
  310.  
  311. 7  Unlimited?
  312.  
  313.  
  314.        Occasionally throughout this document I will use words and phrases like
  315.      'unlimited', 'unending', 'really totally  humongous'  etc.   It should be
  316.      noted that there are limits to everything, so when I say unlimited I mean
  317.      limits so huge that you  have to be NASA to exceed them.  For instance, I
  318.      mention unlimited file size, when in  reality  you can only edit files of
  319.      up to 2.5  gigabytes or so (well, up to almost 5 gigabytes, but I suspect
  320.      it gets pretty flaky after 2.5 gigabytes.. I haven't exactly been able to
  321.      test that  part...).    Of  course, it relies on hard drive size as well,
  322.      which  limits most people to files of around 100 megabytes and less.  For
  323.      all intents and  purposes,  that's  big  enough  that I can get away with
  324.      saying unlimited.
  325.  
  326.  
  327.  
  328.                                      Page Four.
  329.  
  330.  
  331.  
  332.  
  333.      HexEdit 2.1                                                By Mike Graham
  334.  
  335.  
  336.  
  337. 8  Installing HexEdit
  338.  
  339.  
  340. 8.1  General Installation
  341.  
  342.        The only file absolutely required to use HexEdit is the executable file
  343.      HE.EXE.  If this file is put in your path somewhere, then you should have
  344.      no  trouble at all.  To use the on-line help, the file HEXEDIT.HLP should
  345.      be  copied  into  the same directory as  HE.EXE.    To  use  HEB.BAT  for
  346.      automatic backups (see  subsection  "Starting up HexEdit" below) then you
  347.      will  need to copy HEB.BAT and MAKEBAK.EXE to your path (they do not need
  348.      to be in the same directory as HE.EXE).
  349.  
  350. 8.2  Installing for DESQview
  351.  
  352.        HexEdit is a DESQview-aware application.  Because of this,  it  can  be
  353.      run  more  fluidly  under DESQview than a non-aware application could be.
  354.      To  install  HexEdit,  you  should  copy  the  HE-PIF.DVP file  into  the
  355.      directory with HE.EXE.  Now, simply pop up the DESQview main menu, select
  356.      the "Open Window" menu, pick "Add  a  Program", and select "O" for "Other
  357.      (add program not in list)".   In  the  dialogue box that appears, fill in
  358.      the directory that you copied HE.EXE and HE-PIF.DVP  to.    Once  you hit
  359.      enter, you can select to install HexEdit.  Note that  if  you also copied
  360.      the Windows 3.0 PIF file to the HE.EXE directory, then you  will actually
  361.      have a choice  between  TWO seemingly identical "HexEdit" applications to
  362.      install.  This is because DESQview partially understands PIF files.  Pick
  363.      the HexEdit in the left-hand column.  HexEdit  is  now  installed.   Note
  364.      that  the  DVP file assumes that the HE.EXE file is in the path.   If  it
  365.      isn't, you will have to modify the DVP file slightly.
  366.  
  367. 8.3  Installing for Windows 3.0
  368.  
  369.        HexEdit comes with  a Windows 3.0 PIF file, and two icon files.  If you
  370.      want  to run HexEdit under Windows, then you should copy at least the PIF
  371.      file to the HexEdit directory.  To install, simply  run  Windows,  select
  372.      the group  you  want  to  add HexEdit to as the current group, and select
  373.      "New" under the  "File" menu.  You will now see a dialogue box asking you
  374.      whether you want to add a new program item or a new group.  Make sure the
  375.      "Program Item" radio button is pressed, and click on "OK".    You now see
  376.      the "Edit Properties" dialogue box.  Type in the full path of the HexEdit
  377.      PIF file (HE.PIF).  Once that's typed in,  click  on  "Change  Icon", and
  378.      type in the  full  path of one of the HexEdit .ICO files.  Click on "View
  379.      Next" to make sure the path is right, and you should see the custom icon.
  380.      Try changing the icon path to  the  other icon file (there's "HE.ICO" and
  381.      "HE2.ICO") and  viewing  it;  each  icon has its merit.  Once the icon is
  382.      selected,  just  click  on "OK" a few  times,  and  you're  done.    It's
  383.      installed.    You  will likely have to change the PIF  file  slightly  to
  384.      specify where you copied HE.EXE, though.
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.                                      Page Five.
  395.  
  396.  
  397.  
  398.  
  399.      HexEdit 2.1                                                By Mike Graham
  400.  
  401.  
  402.  
  403. 9  The Basics
  404.  
  405.  
  406. 9.1  Starting up HexEdit
  407.  
  408.        Just call up HexEdit with a  file  name  as the first parameter, and an
  409.      UNDO file as the (optional) second parameter.  Additionally, you  can add
  410.      "/MONO"  after the last file parameter to  force  the  'factory  default'
  411.      monochrome colours.  For a quick refresher of parameters,  you  can  just
  412.      run  HexEdit  with  no parameters, and you will get a help screen listing
  413.      all of the parameter choices.
  414.  
  415.        For example: "HE JUNK.DAT JUNK.LOG /MONO" will start  HexEdit  and load
  416.      JUNK.DAT  using  JUNK.LOG  as the UNDO  log.    The  monochrome  'factory
  417.      default' colour set will be used.
  418.  
  419.        If you want HexEdit to make a backup of the  file  you're editing, then
  420.      replace  "HEB" for "HE" in the above commands.  HEB is a batch file  that
  421.      automatically  copies  whatever  file you want to edit to a file with the
  422.      extension  .BAK.  If the file you're editing IS a .BAK file, then a  file
  423.      with the extension .BA0 will be created.
  424.  
  425. 9.2  Once You're Started
  426.  
  427.        The file is read in, and you see the first page (256 bytes) of it.   It
  428.      looks sort of like this:
  429. ═[Editing: C:\UTIL\HE\HE.EXE]══════════════════════════════[HexEdit 2.1]═════
  430.  Found:   127/290           Changes : 4297           Mask:Off  Mode:C  Page:1
  431.  Current Sector:          39(00000027)    Byte:      20360(00004F88)
  432.  Total Sectors :         127(0000007F)   Bytes:      65503(0000FFDF)
  433. ════00═01═02═03═04═05═06═07═08═09═0A═0B═0C═0D═0E═0F══════0123456789ABCDEF════
  434. 00- 74 69 6F 6E 20 6F 66 20-48 45 58 45 44 49 54 2E -00- tion of HEXEDIT. -00
  435. 01- 54 58 54 20 66 6F 72 20-6D 6F 72 65 20 69 6E 66 -01- TXT for more inf -01
  436. 02- 6F 72 6D 61 74 69 6F 6E-2E 36 54 68 65 72 65 20 -02- ormation.6There  -02
  437. 03- 69 73 20 6E 6F 20 64 69-66 66 65 72 65 6E 63 65 -03- is no difference -03
  438. 04- 20 62 65 74 77 65 65 6E-20 74 68 65 20 72 65 67 -04-  between the reg -04
  439. 05- 69 73 74 65 72 65 64 20-61 6E 64 20 6E 6F 6E 2D -05- istered and non- -05
  440. 06- 33 72 65 67 69 73 74 65-72 65 64 20 76 65 72 73 -06- 3registered vers -06
  441. 07- 69 6F 6E 73 20 28 74 68-69 73 20 69 73 20 4E 4F -07- ions (this is NO -07
  442. 08- 54 20 43 72 69 70 70 6C-65 77 61 72 65 21 21 21 -08- T Crippleware!!! -08
  443. 09- 21 21 29 2E 0F 20 20 20-20 4D 69 6B 65 20 47 72 -09- !!).     Mike Gr -09
  444. 0A- 61 68 61 6D 0D 20 20 20-20 42 6F 78 20 36 30 30 -0A- aham     Box 600 -0A
  445. 0B- 33 36 18 20 20 20 20 55-20 6F 66 20 41 20 50 6F -0B- 36     U of A Po -0B
  446. 0C- 73 74 61 6C 20 4F 75 74-6C 65 74 10 20 20 20 20 -0C- stal Outlet      -0C
  447. 0D- 45 64 6D 6F 6E 74 6F 6E-2C 20 41 42 13 20 20 20 -0D- Edmonton, AB     -0D
  448. 0E- 20 43 61 6E 61 64 61 20-20 54 36 47 20 32 53 34 -0E-  Canada  T6G 2S4 -0E
  449. 0F- 3C 20 6F 72 20 63 6F 6E-74 61 63 74 20 22 6D 69 -0F- < or contact "mi -0F
  450. ════00═01═02═03═04═05═06═07═08═09═0A═0B═0C═0D═0E═0F══════0123456789ABCDEF════
  451.    F1:Help  F2/SF2:Jump  F3:Search  F4:Srch/Rep  F8:Mask  F9:Mode  ESC:Exit
  452.    Alt keys:  A:Ascii  B:Base  C:Config  S:Shell  X:Abort!  T:Text  U:Undo
  453. ═════════════════════════════════════════════════════════════════════════════
  454.      At the top, you see the name of  the  file  being  patched (in this case,
  455.      HE.EXE) and  the  version  of  HexEdit.  On the next line you see 'Found:
  456.      127/290' which indicates  that  the  last  search you did resulted in 290
  457.  
  458.  
  459.  
  460.                                      Page Six.
  461.  
  462.  
  463.  
  464.  
  465.      HexEdit 2.1                                                By Mike Graham
  466.  
  467.  
  468.  
  469.      finds,  and  you  most recently jumped to the location of the 127th found
  470.      item (think of it as location 127 of 290 locations).   In  the  center of
  471.      that   line   you   see  'Changes:  4297'.    This  indicates  that  4297
  472.      modifications have been made to the file (use UNDO (Alt-U) to restore the
  473.      file to its original form).  To the  right  is  'Mask:Off'.   This is the
  474.      indicator  for  the  text filter mask.  Farther to the right is 'Mode:C'.
  475.      This  indicates  that  you're currently in character editing mode, so any
  476.      key you hit (besides arrow keys etc.) will overwrite the  character under
  477.      the cursor.  If you were to change to hex mode (F9) then you can edit the
  478.      hex value of  the  byte directly (the C will change to an H).  Farther to
  479.      the  right  is  'Page:1'.  This tells  you  that  you're  on  the  second
  480.      (numbered from 0)  256  byte  chunk  (or  'page') of the current 512 byte
  481.      sector.  On the next line is the number of the  current  512  byte sector
  482.      within  the file (in decimal, with hex in the brackets) and the offset of
  483.      the current byte  (hex in the brackets).  The next line is similar to the
  484.      one  above, except that it indicates the maximums for the file, i.e.  the
  485.      number of sectors and bytes in  the  file.   Bytes, pages and sectors are
  486.      numbered  with  the first one being zero.    Everything  else  is  pretty
  487.      obvious.
  488.  
  489.      A word about nomenclature: a file is divided in to any number of 512 byte
  490.      sectors, which are in turn divided into two 256 byte pages.  At any given
  491.      time you are looking at ONE PAGE of  the  CURRENT  SECTOR.   Any time you
  492.      specify a sector target, you will jump to the first  PAGE  of that sector
  493.      (in other words, you might have to hit page-down once  after  the jump to
  494.      get where  you  want  to  be  if  you wanted the second page of a certain
  495.      sector).
  496.  
  497.  
  498. 10  The Keys
  499.  
  500.  
  501. 10.1  F1: Help
  502.  
  503.         This key will call up the  one-page  text file 'HEXEDIT.HLP' if it can
  504.      be found in the same directory as the HexEdit executable file.  Feel free
  505.      to edit this file to your liking.
  506.  
  507. 10.2  F2: Jump to Byte
  508.  
  509.         Hitting this key will call up a command line which asks: 'Byte to jump
  510.      to [dec/$hex/MIN/MAX/F/L/N/P]'.  The net effect, is that if you type in a
  511.      decimal  number  like  '100'  or  '51231',  then  you will  be  instantly
  512.      transported to that byte (Remember! Bytes are numbered from ZERO, so byte
  513.      #1 is the second byte  in the file).  If you type in a hexadecimal string
  514.      beginning with a dollar sign (i.e. '$F10F') then  you  will  jump  to the
  515.      byte  denoted  by that value.  If you type in MIN, you will jump  to  the
  516.      first (minimum) byte, MAX will jump to the  last  (maximum)  byte  in the
  517.      file.  F is the first found item, L is the last found item, N is the next
  518.      and P is the previous found item.
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.                                     Page Seven.
  527.  
  528.  
  529.  
  530.  
  531.      HexEdit 2.1                                                By Mike Graham
  532.  
  533.  
  534.  
  535. 10.3  Shift-F2: Jump to Sector
  536.  
  537.         This  works almost exactly the same as F2 except that if you specify a
  538.      number in decimal  or hex, you will be 'jumped' to the first page of that
  539.      SECTOR,  not BYTE.  Other than that,  the  MIN/MAX/F/L/N/P  choices  work
  540.      exactly the same.  You will find that you will generally use F2, but this
  541.      function is included for completeness.
  542.  
  543. 10.4  F3: Search
  544.  
  545.         This feature works differently depending on whether you are in  HEX or
  546.      CHAR editing mode.  If you are in HEX mode, it will prompt and search for
  547.      a HEX string.  If you're in CHAR mode, then it will prompt and search for
  548.      a  character string.  After the string is entered you will be prompted as
  549.      to whether you  want  the  search  case  sensitive or not.  Hitting <ESC>
  550.      instead of <ENTER> to terminate input of the search string will cause the
  551.      search to abort.
  552.  
  553. 10.5  F4: Search and Replace
  554.  
  555.         Same as search (F3) except after the case sensitivity prompt,  you are
  556.      asked for a string/hex  series  to  replace  the search string/hex series
  557.      with  (must be the same length if hex, can be shorter if you're searching
  558.      for text  (string  will  be  padded  with  space (ASCII 32) characters if
  559.      shorter).  After the replacement string/series is entered, a box  pops up
  560.      asking you  if  the  details  are  correct  (remember:  short strings are
  561.      padded at the right!).  If not, you can retype the  replace string/series
  562.      until  it IS right (or ESC to abort).  After the replace string/series is
  563.      entered correctly, you are asked whether you want to be prompted for each
  564.      replace.  If you indicate that you  do  NOT  want  to  be  prompted, then
  565.      everything will happen automatically, and every occurrence of the search-
  566.      string/series in the file will  be replaced by the replace string/series.
  567.      If  you  indicate that you DO want to be prompted, then  every  time  the
  568.      search string is found, you are prompted whether you  want  to  'Replace?
  569.      <Y/N/A/Q>'.   'Y'  and  'N'  are  simply  'yes' and 'no'.  If you want to
  570.      replace this occurrence, then type 'y'.  If  you  don't  want  to replace
  571.      this occurrence, then type 'n'.  If you type 'A'  (for  Automatic or All)
  572.      then all of the remaining occurrences will be replaced automatically.  If
  573.      you type 'Q' (for Quit), then  you  will  be returned to the main HexEdit
  574.      screen without replacing this, or any subsequent occurrences.
  575.  
  576. 10.6  F8: Mask non-text bytes
  577.  
  578.         Hitting this key will toggle the text mask on and  off.   When active,
  579.      the text mask causes all  bytes  that  are  not  text  bytes  (i.e. ASCII
  580.      #32-#126) to appear on the screen  as  periods ('.') rather than as their
  581.      actual values.  This is convenient  when  you are looking through a file,
  582.      and want  to  view  only  the  textual  information (see also Alt-T: Text
  583.      Search).
  584.  
  585. 10.7  F9: Mode
  586.  
  587.         Toggle between character  editing  mode  and  hex  editing  mode.   In
  588.      character editing mode you can replace characters by typing directly with
  589.  
  590.  
  591.  
  592.                                     Page Eight.
  593.  
  594.  
  595.  
  596.  
  597.      HexEdit 2.1                                                By Mike Graham
  598.  
  599.  
  600.  
  601.      the keyboard (the cursor will be on the character array on the right hand
  602.      side of  the  screen).    In  hex  mode, you enter the hex codes with the
  603.      keyboard,  and  the  characters are replaced with the ones represented by
  604.      that hex code (the cursor will be on the hex grid on the left side of the
  605.      screen).
  606.  
  607. 10.8  Alt-A: ASCII Table
  608.  
  609.         Hitting  this  key  will pop up an ASCII table which has fairly simple
  610.      commands.   All of the standard cursor  commands  (PGUP,  PGDN,  ARROWUP,
  611.      ARROWDN, HOME, and END) do things that make sense, so  it  shouldn't be a
  612.      really stressful thing to get the hang of.  Hit ESC when you're done with
  613.      it.
  614.  
  615. 10.9  Alt-B: Base Conversion
  616.  
  617.         Hitting Alt-B will pop up a  small  window in the upper-left corner of
  618.      the screen.  There are three lines in this window.  The first line is the
  619.      value in decimal, the second hexadecimal,  the  third in binary.  On pop-
  620.      up, the value displayed will be whatever value was under the  cursor when
  621.      you hit Alt-B.   Once in the window, however, you can tab about the lines
  622.      and change them.  A change in one is reflected in them all.   Hit  ESC to
  623.      return to HexEdit.
  624.  
  625. 10.10  Alt-C: Configuration
  626.  
  627.         Change  the  default  colours.  If you're running a monochrome system,
  628.      you might not want to run this, as I designed  default  colours that work
  629.      pretty nicely for monochrome, but it never hurts to check  it  out.  It's
  630.      REAL easy.  After hitting ALT-C, you will be looking at a box with a list
  631.      of items down the left, and a facsimile of the HexEdit main screen on the
  632.      right.    Just  use the cursor keys to pick the item to change.  Once you
  633.      have selected an item, you get the attribute  box,  which  shows  you the
  634.      current foreground/background/blink options  for  that item.  You use the
  635.      cursor keys to change the colours  (note  the sample colour swatch at the
  636.      bottom  of the attribute box).  When you have the colour set the way  you
  637.      want, just hit enter, and you will return to the main  configuration box,
  638.      and the  screen  will  be  updated with the colours you selected.  If you
  639.      pick some really gross colours, and decide to switch back to  the colours
  640.      you  had  before  you  entered  the  configuration  section, just  select
  641.      "RESTORE".  Once  you  have  the  screen  the  way  you like it, just hit
  642.      <ESCAPE> and you will be asked  whether  you  want to save the changes to
  643.      disk or not.  If you reply no, then the changes will last for the current
  644.      editing session only, otherwise  they  will  be  saved permanently.  Just
  645.      give it a  try and see what happens.  Changes are written directly to the
  646.      HexEdit executable.  Note  that  you  can  rename 'HE.EXE' with impunity.
  647.      HexEdit always knows  what  you've  renamed  it  to.  The only thing that
  648.      needs to  be  changed  if  you rename HE.EXE is HEB.BAT.  By default, HEB
  649.      calls "HE %1 %2 %3 %4".  If you change  the  name  of  HE.EXE,  than  you
  650.      should change HEB.BAT accordingly.
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.                                      Page Nine.
  659.  
  660.  
  661.  
  662.  
  663.      HexEdit 2.1                                                By Mike Graham
  664.  
  665.  
  666.  
  667. 10.11  Alt-N: Next Found
  668.  
  669.         This is just a shortcut  for F2/N.  It will jump you to the next found
  670.      item on the FOUND list.
  671.  
  672. 10.12  Alt-P: Previous Found
  673.  
  674.         This is just a shortcut for F2/P.  It will jump  you  to  the previous
  675.      found item on the FOUND list.
  676.  
  677. 10.13  Alt-S: Shell to DOS
  678.  
  679.         Use this function to quickly drop to DOS to copy files etc.  Just type
  680.      "EXIT" at the DOS command line  to  return  to HexEdit.  A note regarding
  681.      swapping to DOS: don't delete any of the files that are in use by HexEdit
  682.      while  swapped to DOS!  I.e. don't delete the file you're editing, or the
  683.      HEXEDIT.LOG  file, or the HEXEDIT.SWP file!.    Changing  directories  is
  684.      okay, but you DON'T want to delete any files that are currently open.  If
  685.      you DO delete any of the really important files (even if  they  have  a 0
  686.      file  size) then bad things could happen, and you will likely have to run
  687.      a CHKDSK/F to clean things up.
  688.  
  689. 10.14  Alt-T: Text Search
  690.  
  691.         Search  for  random  strings of text (ASCII characters 32 to 126) of a
  692.      certain minimum length.  For  instance,  you're patching COMMAND.COM, and
  693.      you want to change the name of the batch file that's executed on start-up
  694.      (i.e. instead of AUTOEXEC.BAT,  make  it  RUNME.BAT).   After you've done
  695.      this  with  a  quick  search  and  replace  (F4),  you suddenly wonder to
  696.      yourself "Gee, I  wonder  what  ELSE  I  can change?".  Rather than using
  697.      PGUP/PGDN  to crawl around the file looking for text, you can simply do a
  698.      text  search  for  strings with a length of 12 or so.  This will find all
  699.      the interesting  (changeable)  parts  of  the file.  Give it a try.  It's
  700.      hard to explain, but you'll like it.
  701.  
  702. 10.15  Alt-U: Undo
  703.  
  704.         You can undo an unlimited number of changes made to the file currently
  705.      being edited.  After you hit Alt-U, you will be  prompted  for the number
  706.      of changes to undo (the default  is  1,  or whatever number you undid the
  707.      previous time).    You  can  either type in a number (decimal only..  why
  708.      bother with hex in this instance?) or either  of  the  keywords  'ALL' or
  709.      'PURGE'.  Entering 'ALL' will undo all of the changes, just as if you had
  710.      typed in the number of changes that had  actually  been  done  (saves you
  711.      from typing  weird  numbers  all  of the time).  If you enter the keyword
  712.      'PURGE'  instead of a number, then you will be prompted for the number of
  713.      changes to retain.  For instance, say you had done  a  rather huge search
  714.      and replace and had replaced 100 20 character strings (resulting  in 2000
  715.      changes).  Perhaps you don't want all 2000 changes in  your  logfile.  If
  716.      you don't, you can hit Alt-U  to  pop  up the UNDO prompt, enter 'PURGE',
  717.      then  enter  20  or something somewhat smaller to reduce the size of your
  718.      purge file.   You  don't HAVE to do this... the undo file can grow to any
  719.      size that your hard drive will permit, but sometimes it's nice  the prune
  720.      the sucker down.  Remember that when you UNDO something, that UNDO action
  721.  
  722.  
  723.  
  724.                                      Page Ten.
  725.  
  726.  
  727.  
  728.  
  729.      HexEdit 2.1                                                By Mike Graham
  730.  
  731.  
  732.  
  733.      is added to the UNDO log... the net effect is that  if  you  keep UNDOing
  734.      one  action,  you  will just toggle between two values and keep adding to
  735.      the UNDO log.  For instance, if you change a  'b'  to  an  'a'  and  back
  736.      again, then HexEdit remember each  change, even though they are redundant
  737.      (i.e. you're back where you started from).  Keeping this in mind, another
  738.      example  of  when  you  would  want to purge would be if you had  done  a
  739.      massive search and replace,  then  decided that you really didn't want to
  740.      do that...  If you UNDO the search and replace,  then  you have redundant
  741.      UNDO records in the log: a set of records changing the  file,  and  a set
  742.      changing it back.    You can PURGE the log down to what it was before the
  743.      whole search and replace fiasco, and still be able  to  UNDO  everything.
  744.      What the heck; if you want to do it, do it.  Remember: if  you  purge the
  745.      UNDO log, the  panic-abort  option  may  not  restore  the  file entirely
  746.      (unless the changes you purged were redundant).
  747.  
  748. 10.16  Alt-X: Panic Abort
  749.  
  750.         Hitting this key combination pops up a window which asks if you really
  751.      want to fast-abort  the  edit.    If  you  respond  yes, then all of your
  752.      changes to the file are undone, and you  are  immediately  kicked  out to
  753.      DOS.    Use this if you have maimed the file you're  editing  beyond  all
  754.      recognition, and just want to get out HexEdit, lick your wounds, and hope
  755.      nobody ever finds out about the incident.   Note  that  HexEdit  can only
  756.      UNDO the  changes  that  are  recorded in the current UNDO log, so if you
  757.      have PURGED it, you're out of luck.
  758.  
  759. 10.17  Esc:Exit
  760.  
  761.         If  you can't figure this one out, you need more help than I can  give
  762.      you.
  763.  
  764. 10.18  Backspace
  765.  
  766.         Yes, believe it or  not  the backspace key gets a separate subsection.
  767.      When you  use  the  backspace  key, the cursor will move one space to the
  768.      left, and it will additionally undo any changes made to the  character on
  769.      the  space it just moved onto.  Note that this is not  the  same  as  the
  770.      ALT-U UNDO, this is just a  quick  way  to undo changes that haven't been
  771.      saved yet.  Just type in a couple of characters and hit the backspace key
  772.      a few times and you'll see what I mean.  You'll love it!
  773.  
  774. 10.19  Cursor Keys
  775.  
  776.         See the on-line help file "HEXEDIT.HLP" (F1) for fast reference to all
  777.      of  the movement key assignments.  The only thing you need to remember is
  778.      that if you hit the  up arrow when you're at the top of the current page,
  779.      then you will  move  to the bottom line of the previous page.  All of the
  780.      cursor keys work in  that  fashion.  A little experimentation will reveal
  781.      all.
  782.  
  783.  
  784.  
  785.  
  786.  
  787.  
  788.  
  789.  
  790.                                     Page Eleven.
  791.  
  792.  
  793.  
  794.  
  795.      HexEdit 2.1                                                By Mike Graham
  796.  
  797.  
  798.  
  799. 11  System Requirements
  800.  
  801.  
  802.         HexEdit requires one floppy disk drive, and 384K of memory.   However,
  803.      just because HexEdit will USE pedestrian hardware doesn't  mean  it LIKES
  804.      it.   Give HexEdit hard drives and things like that, and you will have  a
  805.      friend for life.  For ultimate performance, run it on a  RAM  disk.   EMS
  806.      will  be utilized for the swapping DOS shell (up to about 700K or so)  if
  807.      it's found.  The only incompatibility that I  know  of  is  this: HexEdit
  808.      uses direct memory checks to see if a  key  has  been  pressed.  For this
  809.      reason, if your system has the keyboard buffer in  a  nonstandard  place,
  810.      then you might have problems aborting from searches etc.    TSR  programs
  811.      that expand the keyboard buffer are  known  to cause problems.  Note that
  812.      HexEdit currently even  works  on  Tandy  1000's, so any clone that calls
  813.      itself "100% compatible" should work with no problems.
  814.  
  815.  
  816. 12  Odd Notes
  817.  
  818.  
  819.        These  are  NOT  bugs,  they're  simply  somewhat  unexpected operating
  820.      methods.
  821.  
  822.          -  You  may  find  the  cursor  speed  in  HexEdit to be not so  hot.
  823.             HexEdit uses BIOS functions for most keypress functions, therefore
  824.             it can only go as fast  as  your keyboard sends the keypress info.
  825.             If you use a keyboard  accelerator  like  Cruise  Control, PC-Kwik
  826.             key, or  something similar then you will find MARKED improvements.
  827.             HexEdit spends about 80% if its time waiting for keystrokes, so if
  828.             you use an accelerator then you can pump  keystrokes  into HexEdit
  829.             MUCH faster, making for faster scrolls, etc.  Note  also  that  if
  830.             you use DOS 4.01 or better, then you  can  use  the  command "MODE
  831.             CON:RATE=32 DELAY=2" and that will speed up the  keyboard  as well
  832.             (though not NEARLY as fast as Cruise Control or PC-Kwik key can).
  833.  
  834.          -  HexEdit  REQUIRES  DOS 3.0 or better.   It  might  work  on  prior
  835.             releases, but some of  the  features might not work properly.  The
  836.             reason  it  needs  the recent DOS  is  because  HexEdit  needs  to
  837.             backtrack the executable file  in  order  to do the configuration,
  838.             find the help file, etc.
  839.  
  840.          -  The file is saved as  you  go  along.    Whenever  you  change the
  841.             displayed  sector,  the  'Changes:  n'  display at the top of  the
  842.             screen  starts  blinking.   Also, every character  that  has  been
  843.             altered  is  highlighted.   When you try to exit or move from this
  844.             sector using PGUP  or  PGDN  or  whatever,  you  will  be prompted
  845.             whether you want to save the  sector  or  not.  If you answer yes,
  846.             the  sector  will  be saved to  disk  within  the  original  file,
  847.             otherwise  the  changes  will be discarded.  Note that these saves
  848.             are made directly to the original file, so  if  you  want  to play
  849.             around with a file, and you're too paranoid to trust the wonderful
  850.             UNDO feature, then  you  should  use  the  HEB.BAT  file  which is
  851.             documented above.
  852.  
  853.  
  854.  
  855.  
  856.                                     Page Twelve.
  857.  
  858.  
  859.  
  860.  
  861.      HexEdit 2.1                                                By Mike Graham
  862.  
  863.  
  864.  
  865. 13  Future Enhancements
  866.  
  867.  
  868.        Most of these enhancements will happen  in  phases.  The next big phase
  869.      is  conversion  to  TurboVision.    Each potential enhancement  has  been
  870.      labeled either "Soon", "TVision" or "Maybe".  Enhancements labeled "Soon"
  871.      will appear in the  next  version or two.  Enhancements labeled "TVision"
  872.      will appear when I convert to TurboVision (during the summer, hopefully).
  873.      Those enhancements labeled "Maybe" are ones that I  haven't  even decided
  874.      whether I'll DO yet.
  875.  
  876.      Soon:
  877.  
  878.          -  Keyboard remapping will be implemented  in the next version or two
  879.             to allow people to change the default keys to whatever they happen
  880.             to want them to be.
  881.  
  882.          -  Final  implementation  of  my buffered file access  unit  will  be
  883.             happening  soon,  too,  which  will  nail  shut  all of  the  disk
  884.             thrashing problems.
  885.  
  886.          -  Some day, I will code a method to actually  INCREASE  or  DECREASE
  887.             the size of files, in  order  to  do  a  search  and  replace with
  888.             unlike-sized search and replace strings.   At first I thought that
  889.             this would be somewhat of a waste of time, because you  can't mess
  890.             around  with  the  innards of an executable file THAT much without
  891.             REALLY knowing what you're doing.   I have been informed, however,
  892.             that people also  use  HexEdit  to  edit binary data files, and an
  893.             unlike-sized search&replace would be VERY handy.  Okee dokee.
  894.  
  895.      TVision:
  896.  
  897.          -  Pull-down  windows  will   be  implemented  with  TurboVision  (of
  898.             course).  I'm partially against it, but I sort of  know  it has to
  899.             happen  sooner  or  later.    If  anyone  would   suffer   at  the
  900.             implementation of menus,  it's  me; remember I've been using these
  901.             keystrokes for 5  years!  Ah well.  There but for the grace of the
  902.             user go I.
  903.  
  904.          -  Upon conversion to  TurboVision,  editing multiple files will be a
  905.             reality!
  906.  
  907.          -  The  pop-up  calculator  will be thrown in  with  the  TurboVision
  908.             release.
  909.  
  910.          -  Context-sensitive help
  911.  
  912.          -  Enhanced screen customization
  913.  
  914.          -  Mouse support
  915.  
  916.      Maybe:
  917.  
  918.  
  919.  
  920.  
  921.  
  922.                                    Page Thirteen.
  923.  
  924.  
  925.  
  926.  
  927.      HexEdit 2.1                                                By Mike Graham
  928.  
  929.  
  930.  
  931.          -  Do we  want  to  be  able to patch disk sectors directly?  I'm not
  932.             sure.  That's not  really  the PURPOSE of HexEdit, but it wouldn't
  933.             be too hard to do.  How about a directory editor?  Unerase?  Maybe
  934.             as a separate product?
  935.             Feedback!  Need user feedback!
  936.  
  937.      Well, Frank Lenk  (senior  editor of Computing Now... wonderful magazine)
  938.      recently put up his list of "Bare Necessities" for  the  applications  of
  939.      today.  Well, HexEdit holds up pretty well (once the  TurboVision release
  940.      hits the streets).  The point in Mr.  Lenk's  editorial  that  really hit
  941.      home  for  me  was his including "A Future" in with his vital attributes.
  942.      That's something that not everyone thinks about when  they  buy software.
  943.      One example of an excellent product that appears  to  have  no  future is
  944.      Borland's Sprint.  I'm one of the many people who  bought  Sprint only to
  945.      find out that it's basically a dead product now.  Sure it's powerful, and
  946.      it  does  an  excellent  job  with  text  documentation   (such   as  the
  947.      documentation you're reading right now) but if there's no new development
  948.      happening, then how long is  it  going  to  STAY  powerful?    What about
  949.      printer  drivers,  etc?   The point of my meandering is that I've sweated
  950.      blood over HexEdit, and there's more where that  came  from,  so  you can
  951.      rest  easy.   HexEdit will continue to evolve for as long  as  the  money
  952.      keeps rolling (limping, crawling) in.
  953.  
  954.  
  955. 14  Revision History
  956.  
  957.  
  958.      (Reverse chronological order)
  959.  
  960.  
  961.      Version 2.1: April 20, 1991
  962.  
  963.      A vast improvement over 2.0.
  964.  
  965.      New Additions:
  966.  
  967.          -  The HEB.BAT file was added to pacify the people who REALLY want to
  968.             have .BAK files.
  969.  
  970.          -  F8 now toggles a text mask which, when active, causes all non-text
  971.             characters to appear on the screen as a period '.'.
  972.  
  973.          -  ALT-N now jumps to next found item.
  974.  
  975.          -  ALT-P now jump to previous found item.
  976.  
  977.          -  ALT-X is now the panic button (previously ALT-P).
  978.  
  979.          -  ALT-A now pops up an ASCII table.
  980.  
  981.          -  ALT-S  will  call a fully swapping DOS  shell  (swaps  to  EMS  if
  982.             available, otherwise swaps to disk).
  983.  
  984.  
  985.  
  986.  
  987.  
  988.                                    Page Fourteen.
  989.  
  990.  
  991.  
  992.  
  993.      HexEdit 2.1                                                By Mike Graham
  994.  
  995.  
  996.  
  997.          -  Backspace  now  works  in a much more intelligent way, rather than
  998.             just being the same as a back-arrow.
  999.  
  1000.          -  The FastRep program was added  as  a  very  vertical-market, niche
  1001.             application  that  I  happened to have lying  around  and  thought
  1002.             someone might be able to use.
  1003.  
  1004.          -  I tossed in KEYLOCK as well, even though it has nothing to do with
  1005.             HexEdit  at  all  (but it's SO nice to add to your autoexec.bat to
  1006.             shut off the bleedin' NUM lock).
  1007.  
  1008.          -  Windows support has been  greatly  expanded  with  a PIF file, two
  1009.             icon files, and enough rewrites to let HexEdit run  in  a  graphic
  1010.             window.  Pretty nifty.
  1011.  
  1012.          -  DESQview  support  has  been  enhanced  as  well.   HexEdit  is  a
  1013.             DESQview-aware application, and there is a .DVP file included.
  1014.  
  1015.      Fixes:
  1016.  
  1017.          -  That weird bug regarding searches  being SO SLOW under Windows was
  1018.             solved (it was Windows' fault).
  1019.  
  1020.          -  The search engine was heavily modified to remove some intermittent
  1021.             problems dealing with finding null characters, and finding strings
  1022.             that overlapped sector boundaries.
  1023.  
  1024.          -  The UNDO engine was rebuilt from the ground up.   It  now works so
  1025.             fast and clean it even amazes ME.
  1026.  
  1027.          -  A really  dumb  bug  was  found  (sharp  eyes, Craig!) in the Jump
  1028.             routines.  If you used Shift-F2 (for jump by sector)  and selected
  1029.             to jump to  the  next  found  item,  it wouldn't jump there in all
  1030.             cases.  Dumb dumb dumb.
  1031.  
  1032.          -  Documentation overhauled.
  1033.  
  1034.  
  1035.      Version 2.0: February 16, 1991
  1036.  
  1037.        The  official release!  Very clean... no known bugs.  You can now abort
  1038.      from searches and UNDO activities.  Percent-done boxes were added  to the
  1039.      UNDO engine, so now everything that can possibly take more than  a second
  1040.      or two now has a percent-done box and the facility  to  abort the process
  1041.      cleanly.  Also added was the /MONO parameter, and the RESTORE function in
  1042.      the configuration.  I think I'll take a break  from  programming  HexEdit
  1043.      for  a little while to work on my next big project (still top-secret, but
  1044.      it will make efficient programming a MUCH more enjoyable experience).
  1045.  
  1046.  
  1047.      Version 1.9g: February 9, 1991
  1048.  
  1049.        There were actually fairly few bugs to fix for this release.  There was
  1050.      a  weird bug that only appeared if you were editing files with sizes that
  1051.  
  1052.  
  1053.  
  1054.                                    Page Fifteen.
  1055.  
  1056.  
  1057.  
  1058.  
  1059.      HexEdit 2.1                                                By Mike Graham
  1060.  
  1061.  
  1062.  
  1063.      were evenly divisible  by 256.  Go figure.  I modified the exit prompt to
  1064.      revert to the old default of 'Y' instead of 'N'.  The position bar things
  1065.      on the  main  screen  (the  ones that show you what byte you're on... you
  1066.      know, those hex things in highlight at the side and  top  of the screen?)
  1067.      were a bit hard to track if you were far away from them, so I  added more
  1068.      at the right and bottom  of  the  screen.    One or two minor things were
  1069.      improved, but basically this is version 1.9e with a minor facelift. (1.9f
  1070.      was not released).  Also added was the 'Panic Button' (Alt-P)  which will
  1071.      automatically  undo all of your changes, and kick you out to DOS with the
  1072.      file in it's  original,  pristine condition (providing you haven't PURGED
  1073.      the UNDO log).  Also, I swapped F2 and SF2, so that  F2  is  now  Jump by
  1074.      Byte, rather than Jump by Sector.  I  did  this  because  Jump by Byte is
  1075.      used MUCH MUCH more often. (Jump  by  Sector  was F2 by inertia... it had
  1076.      been F2 for over five years..).   I  went  over  HexEdit  with  the Turbo
  1077.      Profiler, and I found that HexEdit spends about 85% of it's  time waiting
  1078.      for user keypresses, and that's when the  a  key  is  HELD  DOWN.   Quite
  1079.      efficient.   The  search  could  use a minor tweak, though.  So could the
  1080.      UNDO  function.  Using Turbo Pascal 6.0, I was able to compile HexEdit to
  1081.      a 57K executable!!!  Unbelievable!  I am...  speechless.
  1082.  
  1083.  
  1084.      Version 1.9e: February 3, 1991.
  1085.  
  1086.        I've managed to streamline the code further; we're down to about  a 70K
  1087.      executable file.  A few programming glitches were exterminated, including
  1088.      one miserable bug  that  still  amazes  me  to this minute.  The previous
  1089.      version of HexEdit, 1.9d, required a math coprocessor.  I don't know WHY,
  1090.      but  it  did.   I guess I just left the  compiler  switch  in  the  wrong
  1091.      position.  Anyway,  because  I  HAVE  a coprocessor, I never noticed this
  1092.      flaw.    Things  like  this  BUG  me.  The other things that  were  fixed
  1093.      included some idiosyncrasies regarding saving log files, and some general
  1094.      cursor movement  stuff.    The  cursor  routines  were updated so that if
  1095.      you're at the top of a page and cursor up,  you  will automatically PGUP.
  1096.      The net effect is that you can scroll through a file with the cursor.
  1097.  
  1098.  
  1099.      Version 1.9d: January 30, 1991.
  1100.  
  1101.        Several bugs were fixed in this  release.    The major ones were in the
  1102.      UNDO  engine which I thought worked like a charm (of course).  Many minor
  1103.      changes  were  also  implemented, including changing the  'Exit  to  DOS'
  1104.      prompt  to  default  to  no,  and  changing  the F3/F4  key  assignments.
  1105.      Documentation  updated.    I rewrote a lot of the code  to  more  heavily
  1106.      encapsulate it.  HexEdit now consists  of  TEN source files.  Every major
  1107.      function (jump, search, undo, etc.) each has their own  unit.  Makes  for
  1108.      faster compiles.  Anyway, this rewrite caused a few things to glitch, but
  1109.      I think I have them all sorted out.  We're up to 7000 lines of  code now,
  1110.      with  almost  3000  lines of it  being  HexEdit-specific,  and  the  rest
  1111.      library-specific.  Changed default colours to something that looks pretty
  1112.      bland,  but  is  visible  for  monochrome  users  without  being  utterly
  1113.      disgusting in colour.   Previously,  monochrome  users  were right out of
  1114.      luck  because  they  couldn't even SEE  the  prompts  and  stuff  in  the
  1115.      configuration section.  Now, if they screw up the colours they  only have
  1116.      themselves to blame...
  1117.  
  1118.  
  1119.  
  1120.                                    Page Sixteen.
  1121.  
  1122.  
  1123.  
  1124.  
  1125.      HexEdit 2.1                                                By Mike Graham
  1126.  
  1127.  
  1128.  
  1129.      Version 1.9c: January 26, 1991.
  1130.  
  1131.        I'm home from work, and I can see  that  there  were  quite a few minor
  1132.      things wrong with  the  UNDO.    They're  fixed. This release will be the
  1133.      official BETA release for this week.  I've  fixed  some  glitches  in the
  1134.      configuration section that were  driving  me  absolutely around the bend.
  1135.      It's weird how sometimes the small bugs can drive you  nuts  when the big
  1136.      ones get fixed fast.  I re-coded the base conversion procedure  and saved
  1137.      25K in the bargain.  I'm not sure if I like it as much, though.  Figures.
  1138.      I've  decided to release only one BETA version per week, that way I don't
  1139.      have people pointing out bugs that I've already fixed (for a while there,
  1140.      I was always a version or two ahead of the BETA testers).
  1141.  
  1142.  
  1143.      Version 1.9a: January 26, 1991.
  1144.  
  1145.        Added UNDO, and BYTE JUMP.  Modified the screen layout to display total
  1146.      sectors and total  bytes.  This release was VERY hurried.  I got the undo
  1147.      working about a half an  hour before I had to be at work... I started the
  1148.      upload and RAN.    I knew it worked for the easy test instance I gave it,
  1149.      but  I  did no real testing.  I'll be more considerate  for  future  BETA
  1150.      releases (I mean, even the word 'BETA' doesn't excuse THAT many sins...)
  1151.  
  1152.  
  1153.      Version 1.4b: January 10, 1991 (I took a rest.)
  1154.  
  1155.        Added Search/Replace.  Also  modified  HexEdit  to  track down what its
  1156.      executable  filename  is,  so you can rename the executable with impunity
  1157.      and the self-modification still works.  Also, the help files and such are
  1158.      no  longer  searched  in the path.   Everything  is  looked  for  in  the
  1159.      directory in which the HexEdit executable resides.
  1160.  
  1161.  
  1162.      Version 1.3b: January 5, 1991 (I don't learn, do I? :-> )
  1163.  
  1164.        Added option to select window style (no more  totalitarianism  for THIS
  1165.      guy).  Added  a procedure to search for any TEXT (ALT-T).  I.e. if you're
  1166.      looking  for text, ANY text, in a humongous file, you can specify to find
  1167.      a string of characters at least n characters long, and it will find them.
  1168.      Also added a selection for case-insensitive searches.
  1169.  
  1170.  
  1171.      Version 1.2c: January 3, 1991
  1172.  
  1173.        Fixed a few bugs (yeah. real, ugly bugs).  Nothing else really changed.
  1174.      This was an emergency release, something I hope not to have to repeat.  I
  1175.      guess you're kind of asking for it when you release three versions in two
  1176.      days.... I documented the call for base conversion as Alt-B, but coded it
  1177.      as Alt-H.  I must have been tired.
  1178.  
  1179.  
  1180.      Version 1.2b: January 3, 1991
  1181.  
  1182.  
  1183.  
  1184.  
  1185.  
  1186.                                   Page Seventeen.
  1187.  
  1188.  
  1189.  
  1190.  
  1191.      HexEdit 2.1                                                By Mike Graham
  1192.  
  1193.  
  1194.  
  1195.        Version  1.1b with a face-lift.  I've  added  the  ALT-C  configuration
  1196.      section that modifies the EXE file directly to set colours.   Works nice,
  1197.      but  you  can't LZEXE the file until after you have it  configured.    Ah
  1198.      well.  If you have UNLZEXE or use PKLITE, then you can always just create
  1199.      a batch file that  uncompresses  HexEdit, runs it, and then compresses it
  1200.      again  for those few occasions when you need to redefine the colours.  Of
  1201.      course, you can just set them once then compress it.  This would keep you
  1202.      going for the rare occasions that you need to reconfigure HexEdit.   Also
  1203.      added was the ALT-B base conversion  utility.   A few minor critters were
  1204.      cleaned up (the kind that never pop up  unless  the  user  does something
  1205.      WRONG.  I've got to work on the user-hostility HexEdit tends to exude.).
  1206.  
  1207.  
  1208.      Version 1.1b: January 2, 1991
  1209.  
  1210.        After using my  patch  editor  in  a mostly-working capacity for a long
  1211.      time, I started a project wherein  I  had  to figure out the Turbo Pascal
  1212.      TPU file structure.  Well, I spent a  LOT  of  time  using HexEdit, and I
  1213.      became painfully aware of its limitations.  I abandoned  my  TPU  project
  1214.      (I've got to get back to it, though) and rewrote HexEdit.  Version 1.1 is
  1215.      basically a total rewrite, with support for files of any  size  etc.  The
  1216.      speedy search was refined, blockreads and writes are used for speed. Many
  1217.      of the seams were caulked,  and  it  appears  a  much  more  bullet proof
  1218.      application.
  1219.  
  1220.  
  1221.      Version 1.0: circa 1986
  1222.  
  1223.        I first wrote 1.0 way  back a few years when I was around 16 years old.
  1224.      It  sort  of  worked, and I used it faithfully, but it wasn't distributed
  1225.      much.  It would only  handle files of up to 50K (No, I'm not kidding) and
  1226.      it  generally  handled like a dog.  Not bad for a  16-year-old,  but  not
  1227.      great.  It took forever to read and save files  (files  were defined FILE
  1228.      OF BYTE...   Turbo Pascal version 3.0).  I'm not entirely sure why I kept
  1229.      using it... I guess because it was free!
  1230.  
  1231.  
  1232. 15  Legal Crud
  1233.  
  1234.  
  1235.      As  far  as  hardware  compatibility  goes, here is the HexEdit  standard
  1236.      system:
  1237.  
  1238.          -  Dell system 310 20MHz 386
  1239.  
  1240.          -  Dell DOS 4.01 and Dell OS/2 1.21
  1241.  
  1242.          -  8MB RAM
  1243.  
  1244.          -  155MB CDC Wren III hard drive
  1245.  
  1246.          -  Archive tape backup unit
  1247.  
  1248.          -  ATI VGAWonder/NEC MultiSync 3D
  1249.  
  1250.  
  1251.  
  1252.                                    Page Eighteen.
  1253.  
  1254.  
  1255.  
  1256.  
  1257.      HexEdit 2.1                                                By Mike Graham
  1258.  
  1259.  
  1260.  
  1261.          -  HP LaserJet III
  1262.  
  1263.          -  Roland LAPC Synthesizer card with Rhodes 760 keyboard
  1264.  
  1265.          -  Logitech Series 9 bus mouse
  1266.  
  1267.          -  Gravis Deluxe joystick and controller
  1268.  
  1269.          -  Artist's mannequin
  1270.  
  1271.          -  Profile of me, done when I was in grade 2, on the wall.
  1272.  
  1273.          -  Two gumball machines.
  1274.  
  1275.          -  Me.
  1276.  
  1277.          -  A big Pioneer stereo with no  less  than FOUR remote controls  and
  1278.             lots of CDs by Enya, Robert Palmer, Billy Joel,  Chris  de  Burgh,
  1279.             The Moody Blues, and the B-52's.
  1280.  
  1281.          -  A  fridge  with  lots  of  A&W  Rootbeer  and  President's  Choice
  1282.             Grapefruit juice in it.    (Not even *I* can handle rootbeer first
  1283.             thing in the morning..)
  1284.  
  1285.      This is the standard system.   If  your system doesn't match the standard
  1286.      system EXACTLY, right  down to the last mote of dust on the nose that you
  1287.      crank  on  one of my gumball machines, then I do not  guarantee  that  it
  1288.      works  (in fact, I don't even guarantee that it will work on the standard
  1289.      system!).
  1290.  
  1291.      I  will say, however, that I've never found a system that professes to be
  1292.      100% PC compatible that HexEdit doesn't like.
  1293.  
  1294.      Basically, I don't guarantee anything.  Every word of this document could
  1295.      be a big lie.  I could be sitting at home snickering, thinking of all the
  1296.      people  who wasted their on-line time downloading  a  patch  editor  that
  1297.      doesn't  work.    I  might  ENJOY  typing  in a thousand lines of  sundry
  1298.      documentation in the hopes of sucking some poor  individual  into wasting
  1299.      their  time with a worthless product.  I'm not, and I don't, but I  could
  1300.      be, and I might.
  1301.  
  1302.      If HexEdit works for you, then great, I'm happy, send me  money.    If it
  1303.      doesn't, then darn, I'm ashamed, send me a letter  describing  the  error
  1304.      and I'll do my best to fix it.
  1305.  
  1306.  
  1307.  
  1308.  
  1309.  
  1310.  
  1311.  
  1312.  
  1313.  
  1314.  
  1315.  
  1316.  
  1317.  
  1318.                                    Page Nineteen.
  1319.  
  1320.  
  1321.  
  1322.  
  1323.      HexEdit 2.1                                                By Mike Graham
  1324.  
  1325.  
  1326.  
  1327. 16  Credit where credit is due
  1328.  
  1329.  
  1330.      The following wonderful  folks  generously donated some of their valuable
  1331.      time to aid in BETA testing HexEdit:
  1332.         Neal Sanche
  1333.         Monroe Thomas, Sysop of The Keep
  1334.         Ben Graham
  1335.         Paul Brown
  1336.         Craig Harris
  1337.  
  1338.      Thanks to Martin Silva for catching that odd bug in the search algorithm.
  1339.  
  1340.      Supreme  thanks  to  j William Donovan, who taught me Turbo Pascal when I
  1341.      was just a wee shaver.
  1342.  
  1343.      I used the TechnoJock Turbo Toolkit windowing and  fastwrite  library for
  1344.      Turbo Pascal 5.5  in  the  later  versions  of  HexEdit.   It is a spiffy
  1345.      product, well worth the money.
  1346.  
  1347.         TechnoJock Software Inc.
  1348.         PO Box 820927
  1349.         Houston, Texas
  1350.         77282-0927
  1351.  
  1352.      Also used was Kim  Kokkonen's  EXECSWAP unit.  Turbo Pascal just wouldn't
  1353.      be  the  same  without that guy...  Kim is the  president  of  TurboPower
  1354.      software,  which  is  a major producer of Turbo Pascal programming tools.
  1355.      If  you  program Turbo Pascal and don't  own  any  Turbo  Power  software
  1356.      products, you should seriously look into it.  You can contact Kim at:
  1357.  
  1358.         P.O. Box 66747
  1359.         Scotts Valley CA
  1360.         95066
  1361.  
  1362.  
  1363.  
  1364.  
  1365.  
  1366.  
  1367.  
  1368.  
  1369.  
  1370.  
  1371.  
  1372.  
  1373.  
  1374.  
  1375.  
  1376.  
  1377.  
  1378.  
  1379.  
  1380.  
  1381.  
  1382.  
  1383.  
  1384.                                     Page Twenty.
  1385.  
  1386.  
  1387.  
  1388.  
  1389.      HexEdit 2.1                                                By Mike Graham
  1390.  
  1391.  
  1392.  
  1393. 17  Contacting the Author
  1394.  
  1395.  
  1396.      I can be reached by mail at the following address:
  1397.  
  1398.           Michael A. Graham
  1399.           Box 60036
  1400.           U of A Postal Outlet
  1401.           Edmonton, AB
  1402.           Canada, T6G 2S4
  1403.  
  1404.      Or I can be contacted on InterNet as
  1405.      "michael_graham@mts.ucs.ualberta.ca".
  1406.      (if that doesn't work, substitute "MGRM" for michael_graham.
  1407.  
  1408.      I can be  contacted  on  the  McNamara Software BBS in Edmonton, Alberta,
  1409.      (403)433-8375, as "Mike Graham" and am also available under the same name
  1410.      at The Keep BBS, also in Edmonton, (403)437-1428.  The latest  version of
  1411.      HexEdit  and all of my other PD and  Freeware  programming  efforts  will
  1412.      always  be available on these two BBS's.  Feel free to contact me if  you
  1413.      have suggestions for improvements, or (perish the thought!) a bug report.
  1414.  
  1415.  
  1416.  
  1417.  
  1418.  
  1419.  
  1420.  
  1421.  
  1422.  
  1423.  
  1424.  
  1425.  
  1426.  
  1427.  
  1428.  
  1429.  
  1430.  
  1431.  
  1432.  
  1433.  
  1434.  
  1435.  
  1436.  
  1437.  
  1438.  
  1439.  
  1440.  
  1441.  
  1442.  
  1443.  
  1444.  
  1445.  
  1446.  
  1447.  
  1448.  
  1449.  
  1450.                                   Page Twenty-One.
  1451.  
  1452.  
  1453.